package br.com.bestOffer.ejb.computador.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import br.com.bestOffer.ejb.vo.DiscoRigidoVo;
import br.com.bestOffer.ejb.vo.FonteAlimentacaoVo;
import br.com.bestOffer.ejb.vo.MemoriaRamVo;
import br.com.bestOffer.ejb.vo.PlacaMaeVo;
import br.com.bestOffer.ejb.vo.PlacaVideoVo;
import br.com.bestOffer.ejb.vo.ProcessadorVo;

public class Computador implements Serializable{

	private static final long serialVersionUID = -7971650291953353243L;

	private PlacaMaeVo placaMae;

	private ProcessadorVo processador;

	private FonteAlimentacaoVo fonteAlimentacao;

	private List<DiscoRigidoVo> listaDiscoRigido = new ArrayList<DiscoRigidoVo>();

	private List<PlacaVideoVo> listaPlacaVideoVo = new ArrayList<PlacaVideoVo>();

	private List<MemoriaRamVo> listaMemoriaRamVo = new ArrayList<MemoriaRamVo>();

	private Integer quantidadeMemoria = 0;
	
	private Integer quantidadeMemoriaDiscoRigido = 0;
	
	private Double precoTotal = Double.valueOf(0);
	
	private Integer consumoTotal = 0;
	

	public PlacaMaeVo getPlacaMae() {
		return placaMae;
	}

	public void setPlacaMae(PlacaMaeVo placaMae) {
		this.placaMae = placaMae;
	}

	public ProcessadorVo getProcessador() {
		return processador;
	}

	public void setProcessador(ProcessadorVo processador) {
		this.processador = processador;
	}

	public FonteAlimentacaoVo getFonteAlimentacao() {
		return fonteAlimentacao;
	}

	public void setFonteAlimentacao(FonteAlimentacaoVo fonteAlimentacao) {
		this.fonteAlimentacao = fonteAlimentacao;
	}

	public List<DiscoRigidoVo> getListaDiscoRigido() {
		return listaDiscoRigido;
	}

	public void setListaDiscoRigido(List<DiscoRigidoVo> listaDiscoRigido) {
		this.listaDiscoRigido = listaDiscoRigido;
	}

	public List<PlacaVideoVo> getListaPlacaVideoVo() {
		return listaPlacaVideoVo;
	}

	public void setListaPlacaVideoVo(List<PlacaVideoVo> listaPlacaVideoVo) {
		this.listaPlacaVideoVo = listaPlacaVideoVo;
	}

	
	public List<MemoriaRamVo> getListaMemoriaRamVo() {
		return listaMemoriaRamVo;
	}

	public void setListaMemoriaRamVo(List<MemoriaRamVo> listaMemoriaRamVo) {
		this.listaMemoriaRamVo = listaMemoriaRamVo;
	}

	public Integer getQuantidadeMemoria() {

		if(!getListaMemoriaRamVo().isEmpty()){
			for (MemoriaRamVo memoriaRam : getListaMemoriaRamVo()) {
				quantidadeMemoria = quantidadeMemoria + memoriaRam.getCapacidade();
			}
		}
		return quantidadeMemoria;
	}
	
	public void setQuantidadeMemoria(Integer quantidadeMemoria) {
		this.quantidadeMemoria = quantidadeMemoria;
	}

	public Integer getQuantidadeMemoriaDiscoRigido() {
			if(!getListaDiscoRigido().isEmpty()){
				for (DiscoRigidoVo discoRigido : getListaDiscoRigido()) {
					quantidadeMemoriaDiscoRigido = quantidadeMemoriaDiscoRigido + discoRigido.getCapacidade();
				}
			}
			return quantidadeMemoriaDiscoRigido;
	}
	
	public void setQuantidadeMemoriaDiscoRigido(
			Integer quantidadeMemoriaDiscoRigido) {
		this.quantidadeMemoriaDiscoRigido = quantidadeMemoriaDiscoRigido;
	}
	
	public void somarPreco(Double valor){
		precoTotal = precoTotal + valor;
	}

//	public Double retornaPrecoTotal(){
//		if(placaMae != null){
//			precoTotal = precoTotal + placaMae.getPrecoAnuncio();
//		}
//		
//		if(processador != null){
//			precoTotal = precoTotal + processador.getPrecoAnuncio();
//		}
//		
//		if(fonteAlimentacao != null){
//			precoTotal = precoTotal + fonteAlimentacao.getPrecoAnuncio();
//		}
//		
//		if(placaMae != null){
//			precoTotal = precoTotal + placaMae.getPrecoAnuncio();
//		}
//		
//		if(listaPlacaVideoVo.size() > 0){
//			for (PlacaVideoVo placaVideoVo : listaPlacaVideoVo) {
//				precoTotal = precoTotal + placaVideoVo.getPrecoAnuncio();
//			}
//		}
//		
//		if(listaDiscoRigido.size() > 0){
//			for (DiscoRigidoVo discoRigidoVo : listaDiscoRigido) {
//				precoTotal = precoTotal + discoRigidoVo.getPrecoAnuncio();
//			}
//		}
//		
//		if(listaMemoriaRamVo.size() > 0){
//			for (MemoriaRamVo memoriaRamVo : listaMemoriaRamVo) {
//				precoTotal = precoTotal + memoriaRamVo.getPrecoAnuncio();
//			}
//		}
//	}
	
	
	public Double getPrecoTotal() {
		return precoTotal;
	}

	public void setPrecoTotal(Double precoTotal) {
		this.precoTotal = precoTotal;
	}

	public Integer getConsumo() {
		
//		if(placaMae != null){
//			consumoTotal = consumoTotal + 45;
//		}
//		
//		if(processador != null){
//			consumoTotal = consumoTotal + processador.getTDP();
//		}
//		
//		
//		if(listaDiscoRigido.size() > 0){
//		   consumoTotal = consumoTotal + listaDiscoRigido.size() * 15;
//		}
//		
//		if(listaMemoriaRamVo.size() > 0){
//			// consumoTotal = consumoTotal + listaMemoriaRamVo.size() * 5;
//		}
		
		if(listaPlacaVideoVo.size() > 0){
			consumoTotal = consumoTotal + listaPlacaVideoVo.get(0).getPotenciaFonte();
		}
		
		return consumoTotal;
	}

	public void setConsumoTotal(Integer consumoTotal) {
		this.consumoTotal = consumoTotal;
	} 

	

}
